<?  
  set_time_limit(4500);
  /* Se asegura que el archivo es incluido por el index */
    defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Metodo_exe( $this );
    
	class Metodo_exe extends Exe
	{
	function Metodo_exe( &$oModule )
		{
			$this->oModule = &$oModule;
      // Valida que el Entorno sea el Parametrico
        if ( ES_PARAMETRICO == false ) 
        {
          addMessage('Esta accion solo puede hacerse en el entorno parametrico');
          $this->oModule->back();    
        } 
		}
  // MODIFICAR_METODO_DE_UNA_CLASE
  function update()
    {
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'metodo_frm' );
			extract( $oForm->getFieldArray() );
      // Modifica el Registro
      $this->oModule->oDatabase->update("stClaseMetodo", 
                "cDescripcion", $cDescripcion,  
                "cFisico", $cFisico, 
                "cdMetodo", $cdMetodo, 
                "cArgumentos", $cArgumentos, 
                "WHERE", "ncMetodo", $ncMetodo, "ncClase", $ncClase );
      $oForm->reset();
    }    
  // AGREGAR_METODO_DE_UNA_CLASE:
  function insert()
    {
			// Convierte a variables los datos del Formulario asociado a la accion
			$oForm = $this->oModule->loadClass( 'metodo_frm' );
			extract( $oForm->getFieldArray() );
      // Busca la proxima clave
      $ncMetodo = $this->oModule->oDatabase->nextKey("stClaseMetodo", "ncMetodo", "ncClase=$ncClase" );
      // Agrega el registro
      $this->oModule->oDatabase->insert("stClaseMetodo", 
                "cDescripcion", $cDescripcion,  
                "cFisico", $cFisico, 
                "cdMetodo", $cdMetodo, 
                "cArgumentos", $cArgumentos, 
                "ncMetodo", $ncMetodo, "ncClase", $ncClase );
      $oForm->reset();
    }
  // ELIMINAR_METODO_DE_UNA_CLASE
  function delete()
    {
      // Obtiene los Parametros
      $oncClase   = InputNumber("ncClase" );    	
      $oncAtributo= InputNumber("ncAtributo" );    	
      // Elimina el Registro
      $this->oModule->oDatabase->delete("stClaseMetodo",  "ncMetodo", $oncMetodo->getValue(), "ncClase", $oncClase->getValue() );
    }
	}
?>
